perm filename LISP.2[F77,JMC] blob sn#525114 filedate 1980-07-23 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00004 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	Additional chapters and sections to LISP book.
C00004 00003	A theme of the book and the course should be programs useful
C00006 00004	Additional chapters
C00007 ENDMK
C⊗;
Additional chapters and sections to LISP book.

1. Programs that look at or produce programs.
e.g. is it iterative, compile maplists into functions,

2. input-output
	a.how to use the input and output functions
	b. simple input-output of S-expressions, and programmed
algebraic i-o
	c. syntax directed i-o, how to use it, how it works

3. lisp implementation
	workings of maclisp - what the code compiles into, garbage,

4. syntax directed computation
	transform and friends
	there are some relevant programs

5. Applications to proof-checking and theorem proving.  This should
be the major application chapter.

6. variants of lisp and extensions
hash lisp, Goto's NLISP, scheme, pop-2

7. guide to the literature

8. LISP based systems.  Some examples and advice about writing them.

9. Introduction and historical note.
A theme of the book and the course should be programs useful
in general problem solving and pattern recognition and also
in proving programs correct.  There should be a chapter concentrating
on the theme, but suitable programs should be introduced throughout
the book as illustrations of various techniques.

	In the course, there should be a fixed term project announced
at the beginning and due just before dead week.  The project should
be immediately comprehensible, so that it can be announced on the
first day.

Here are some ideas for programs:

Boolean simplifier
tautology checker (Wang algorithm and truth table)
substitute into expressions with quantifiers
find the free variables
λ-conversion
unify
find an x st. (at various levels. this is the paradigm of a problem solver)
proof checker
proof strategy trier (interpreter)
problem solving strategy interpreter
PROGITER
make a function iterative
canonical forms of boolean and conditional expressions
simplify algebraic and lisp expressions
representation and order relation and ok function for ordinals less
than ε0.
Additional chapters

1. Input and output

2. Program feature, rplaca, fexpr, fsubr,

3. Theory

4. Syntax directed computation

5. applications

6. implementations and variants